package com.ys.p3Vector集合了解即可;

import java.util.Enumeration;
import java.util.Iterator;

import java.util.ListIterator;
import java.util.Vector;

/**
 * 描述: Vector类的基本使用初解
 ** 1.Vector类的概述
 *  *   Vector类是List接口的实现类，而List接口是Collection的子接口，因此Vector类可以使用List接口和Collection接口的所有方法。
 *  * 2.Vector类的底层
 *  *   Vector集合的底层采用了数组来实现。
 *  * 3.Vector类的特点
 *  *   ArrayList集合是线程不安全的，不会去做线程同步检查，因此效率高。
 *  *   Vector集合是线程安全的，会去做线程同步检查，因此效率低。
 *  *   注意：现实开发中，我们常用ArrayList集合，很少使用Vector集合。
 *  * 4.Vector类的传统方法
 *  *   public synchronized void addElement(E obj) --> 此方法的作用和add(E element)类似
 *  *   public Enumeration<E> elements()   --> 此方法的作用和iterator()类似
 *  *   boolean hasMoreElements();   --> 此方法的作用和hasNext()类似
 *  *   E nextElement();   --> 此方法的作用和next()类似
 * @author CodeYang
 * @version 2020/12/25 21:37
 */
public class Vector类的基本使用初解 {

    public static void main(String[] args) {
        Vector<String> vector = new Vector<>();
        // vector 继承自List接口 所以右 collection 与 list 的所有方法
        vector.add("1");


        // vector 原生添加方法
        vector.addElement("3");
        vector.addElement("4");
        // 遍历结合
        //迭代器
        Iterator<String> iterator = vector.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        // 与上面等效
        System.out.println();
        Enumeration<String> elements = vector.elements();
        while (elements.hasMoreElements()){
            System.out.println(elements.nextElement());
        }
        System.out.println();
        for (int i = 0; i <vector.size() ; i++) {
            System.out.println(vector.get(i));
        }
        System.out.println();
        // ListIterator extends Iterator
        ListIterator<String> stringListIterator = vector.listIterator();
        while (stringListIterator.hasNext()){
            System.out.println(stringListIterator.next());
        }

    }
}
